perm filename IMPJOE.OLD[SS,SYS] blob
sn#345685 filedate 1972-05-16 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE ITEST
C00003 00003 Cono Bits . . .
C00005 00004 mpln←pln←←20
C00009 00005 illans: pushj p,rdlf
C00012 ENDMK
C⊗;
TITLE ITEST
IMP←←400
; Cono Bits . . .
test←←100000 ; Enter test mode (does anal-cranial inversion)
strin←←040000 ; Start input, sets stop, clears input end
i32←←020000 ; Set input byte size to 32b if IDPIEN set
o32←←010000 ; Set output byte size to 32b if ODPIEN set
clrst←←004000 ; Clear stop after input bit
clrwt←←002000 ; Clear waiting to input bit
strout←←000200 ; Start output
fino←←000100 ; Finish output (last bit has been sent)
iepien←←000040 ; Enable change of input end interrupt channel
idpien←←000020 ; Enable change of input byte size and input done interrupt channel
odpien←←000010 ; Enable change of output byte size and output done interrupt channel
; Coni bits . . .
test←←100000 ; Enter test mode (does anal-cranial inversion)
imperr←←040000 ; Imp error
idone←←020000 ; Input done
iend←←010000 ; Input end.
odone←←004000 ; Output done
mpln←pln←←20
p←←17
array pdl[pln],mpdl[mpln],messag[300]
integer savep,cnt,savcni
START: calli
movei 1,spwst
movem 1,spwdsp
; put in initialize code here
move 1,[xwd 400004,spw]
call 1,[sixbit /SPCWGO/]
jrst main
spw: skipn rst
jrst @spwdsp
move p,[iowd pln,pdl]
setzm rst
jrst owd
spwdsp: 0
zwait: movei 1,zdsp
jrst dsmg
zdsp: move p,savep
move 1,@(p)
skipe (1)
jrst dsm
jrst cpopj1
nzwait: movei 1,ndsp
jrst dsmg
ndsp: move p,savep
move 1,@(p)
skipn (1)
jrst dsm
jrst cpopj1
fwait: movei 1,fdsp
jrst dsmg
fdsp: move p,savep
coni imp,savcni
move 1,@(p)
conso imp,(1)
jrst dsm
jrst cpopj1
bwait: movei 1,100
movem 1,cnt
movei 1,bdsp
dsmg: movem 1,spwdsp
movem p,savep
jrst dsm
bdsp: move p,savep
move 1,@(p)
conso imp,(1)
jrst count
aos (p)
cpopj1: aos (p)
popj p,
count: sosle cnt
dsm: call [sixbit /DISMIS/]
coni imp,savcni
aos (p)
move 1,@(p)
sos (1)
spwst: move p,[iowd pln,pdl]
movei 1,3
movem 1,nopcnt#
noplop: cono imp,strout!o32!odpien
datao imp,[4B7]
pushj p,fwait
odone
cono imp,fino
pushj p,fwait
odone
sosle nopcnt
jrst noplop
setzm blkip#
owd: cono imp,strout!strin!i32!o32!clrst!clrwt!idpien!iepien!odpien
cono imp,clrst!clrwt
aos ntimes#
setzm now#
datao imp,[13B15]
owd1: pushj p,fwait
odone!idone!iend
consz imp,idone!iend
pushj p,inpsom
conso imp,odone
jrst owd1
datao imp,[707777777777]
owd2: pushj p,fwait
odone!idone!iend
consz imp,idone!iend
pushj p,inpsom
conso imp,odone
jrst owd2
datao imp,[070000000000]
owd4: pushj p,fwait
odone!idone!iend
consz imp,idone!iend
pushj p,inpsom
conso imp,odone
jrst owd4
cno1: cono imp,fino
owd3: pushj p,fwait
odone!idone!iend
consz imp,idone!iend
pushj p,inpsom
conso imp,odone
jrst owd3
ilp: skipe now
jrst owd
pushj p,fwait
idone!iend
pushj p,inpsom
jrst ilp
inpsom: aos ninps#
coni imp,1
skipge blkip
jrst ublki
datai imp,leader#
move 2,[iowd 300,messag]
movem 2,blkip
inptst: trnn 1,iend
popj p,
setzm blkip
move 1,leader
came 1,[5B7!13B15]
consz imp,test
setom now
inpc: cono imp,strin!i32!o32!clrst!clrwt!idpien!iepien
cono imp,clrst!clrwt
popj p,
ublki: blki imp,blkip
jfcl
jrst inptst
illans: pushj p,rdlf
outstr [asciz /Illegal reply
/]
outstr [typmes: asciz /Type "Y" for "Yes", "N" for "No",
and <CR> for "no change"
/]
popj p,
rdlf: inchwl 1
caie 1,12
jrst rdlf
popj p,
main: move p,[iowd mpln,mpdl]
outstr typmes
movei 1,[asciz /IN test mode
/]
move 2,owd
trnn 2,test
movei 1,[asciz /NOT in test mode
/]
outstr (1)
tml: outstr [asciz /Test mode? /]
tlp: inchwl 1
cain 1,15
jrst tlp
caie 1,"y"
cain 1,"Y"
jrst setst
caie 1,"n"
cain 1,"N"
jrst notst
cain 1,12
jrst notch
pushj p,illans
jrst tml
setst: pushj p,rdlf
movei 1,test
orm 1,owd
orm 1,cno1
orm 1,inpc
setom rst#
jrst notch
notst: pushj p,rdlf
movei 1,test
andcam 1,owd
andcam 1,cno1
andcam 1,inpc
setom rst
notch: movei 1,[asciz /IMODE is 36-bit
/]
move 2,owd
trne 2,i32
movei 1,[asciz /IMODE is 32-bit
/]
outstr (1)
outs: outstr [asciz /IMODE 36-bit? /]
outl: inchwl 1
cain 1,15
jrst outl
caie 1,"y"
cain 1,"Y"
jrst seti36
caie 1,"n"
cain 1,"N"
jrst seti32
cain 1,12
jrst noich
pushj p,illans
jrst outs
seti36: pushj p,rdlf
movei 1,i32
andcam 1,owd
andcam 1,inpc
setom rst
jrst noich
seti32: pushj p,rdlf
movei 1,i32
orm 1,owd
orm 1,inpc
setom rst
noich: movei 1,[asciz /OMODE is 36-bit
/]
move 2,owd
trne 2,o32
movei 1,[asciz /OMODE is 32-bit
/]
outstr (1)
ons: outstr [asciz /OMODE 36-bit? /]
onl: inchwl 1
cain 1,15
jrst onl
caie 1,"y"
cain 1,"Y"
jrst seto36
caie 1,"n"
cain 1,"N"
jrst seto32
cain 1,12
jrst nooch
pushj p,illans
jrst ons
seto36: pushj p,rdlf
movei 1,o32
andcam 1,owd
setom rst
jrst nooch
seto32: pushj p,rdlf
movei 1,o32
orm 1,owd
setom rst
nooch: jrst main
end start